#include <iostream>
using namespace std;

int main() {
  char a[]{'A', 'B', 'C', 'D'}; // 'A' ~ 'D'分别是65 ~ 68
  int* p = reinterpret_cast<int*>(a); // 将数组a的地址强制按int型地址解读。
  cout << p << endl; // 这种强制转型不改变地址的数值，与a地址相同。
  cout << (void*)a << endl;
  cout << *p << endl; // 数值与下面的预期结果相同
  cout << ('A' + ('B' << 8) + ('C' << 16) + ('D' << 24)) << endl;
}
